package com.mes.pojo.defece;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.mes.pojo.md.Item;
import com.mes.pojo.supplier.Supplier;

import java.util.Date;

/**
 * @Author 侯伟豪
 * @Company 起点编程
 * @Description
 * @Time 2024/10/21 19:17
 */
@HeadRowHeight(25)
@ContentRowHeight(20)
@ColumnWidth(100)
public class Incoming {
    @ExcelProperty(value = "来料检测单编号", index = 0)
    private Long incomingId;
    @ExcelProperty(value = "来料检测单名称", index = 1)
    private String incomingName;
    @ExcelProperty(value = "供应商编号", index = 2)
    private Long incomingSupplierId;
    @ExcelProperty(value = "物料编号", index = 3)
    private Long incomingItemId;
    @ExcelProperty(value = "接受数量", index = 4)
    private Integer incomingReceptionCount;
    @ExcelProperty(value = "检测数量", index = 5)
    private Integer incomingMaterialCount;
    @ExcelProperty(value = "不合格数" , index = 6)
    private Integer incomingOutCount;
    @ExcelProperty(value = "检测结果", index = 7)
    private Integer incomingMaterialOutcome;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ExcelProperty(value = "来料日期", index = 8)
    private Date incomingDate;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ExcelProperty(value = "物料日期", index = 9)
    private Date materialDate;
    @ExcelProperty(value = "检查人员",index = 10)
    private String materialPerson;
    @ExcelProperty(value = "单据状态", index = 11)
    private Integer incomingDocumentStatus;
    @ExcelProperty(value = "供应商简称", index = 12)
    private String incomingSupplierName;
    @ExcelProperty(value = "物料名称", index = 13)
    private String incomingItemName;
    @ExcelProperty(value = "物料单位", index = 14)
    private String incomingItemUnit;
    @ExcelProperty(value = "合格数量", index = 15)
    private Integer incomingQualifiedNumber;
    @ExcelProperty(value = "致命缺陷数量", index = 16)
    private Integer incomingFatalFlaw;
    @ExcelProperty(value = "严重缺陷数量", index = 17)
    private Integer incomingSevereFlaw;
    @ExcelProperty(value = "轻微缺陷数量", index = 18)
    private Integer incomingSlightFlaw;
    @ExcelIgnore
    private Item item;
    @ExcelIgnore
    private Supplier supplier;

    public Integer getIncomingQualifiedNumber() {
        return incomingQualifiedNumber;
    }

    public void setIncomingQualifiedNumber(Integer incomingQualifiedNumber) {
        this.incomingQualifiedNumber = incomingQualifiedNumber;
    }

    public Integer getIncomingFatalFlaw() {
        return incomingFatalFlaw;
    }

    public void setIncomingFatalFlaw(Integer incomingFatalFlaw) {
        this.incomingFatalFlaw = incomingFatalFlaw;
    }

    public Integer getIncomingSevereFlaw() {
        return incomingSevereFlaw;
    }

    public void setIncomingSevereFlaw(Integer incomingSevereFlaw) {
        this.incomingSevereFlaw = incomingSevereFlaw;
    }

    public Integer getIncomingSlightFlaw() {
        return incomingSlightFlaw;
    }

    public void setIncomingSlightFlaw(Integer incomingSlightFlaw) {
        this.incomingSlightFlaw = incomingSlightFlaw;
    }
    public String getIncomingSupplierName() {
        return incomingSupplierName;
    }

    public void setIncomingSupplierName(String incomingSupplierName) {
        this.incomingSupplierName = incomingSupplierName;
    }

    public String getIncomingItemName() {
        return incomingItemName;
    }

    public void setIncomingItemName(String incomingItemName) {
        this.incomingItemName = incomingItemName;
    }

    public String getIncomingItemUnit() {
        return incomingItemUnit;
    }

    public void setIncomingItemUnit(String incomingItemUnit) {
        this.incomingItemUnit = incomingItemUnit;
    }

    public Long getIncomingId() {
        return incomingId;
    }

    public void setIncomingId(Long incomingId) {
        this.incomingId = incomingId;
    }

    public String getIncomingName() {
        return incomingName;
    }

    public void setIncomingName(String incomingName) {
        this.incomingName = incomingName;
    }

    public Long getIncomingSupplierId() {
        return incomingSupplierId;
    }

    public void setIncomingSupplierId(Long incomingSupplierId) {
        this.incomingSupplierId = incomingSupplierId;
    }

    public Long getIncomingItemId() {
        return incomingItemId;
    }

    public void setIncomingItemId(Long incomingItemId) {
        this.incomingItemId = incomingItemId;
    }

    public Integer getIncomingReceptionCount() {
        return incomingReceptionCount;
    }

    public void setIncomingReceptionCount(Integer incomingReceptionCount) {
        this.incomingReceptionCount = incomingReceptionCount;
    }

    public Integer getIncomingMaterialCount() {
        return incomingMaterialCount;
    }

    public void setIncomingMaterialCount(Integer incomingMaterialCount) {
        this.incomingMaterialCount = incomingMaterialCount;
    }

    public Integer getIncomingOutCount() {
        return incomingOutCount;
    }

    public void setIncomingOutCount(Integer incomingOutCount) {
        this.incomingOutCount = incomingOutCount;
    }

    public Integer getIncomingMaterialOutcome() {
        return incomingMaterialOutcome;
    }

    public void setIncomingMaterialOutcome(Integer incomingMaterialOutcome) {
        this.incomingMaterialOutcome = incomingMaterialOutcome;
    }

    public Date getIncomingDate() {
        return incomingDate;
    }

    public void setIncomingDate(Date incomingDate) {
        this.incomingDate = incomingDate;
    }

    public Date getMaterialDate() {
        return materialDate;
    }

    public void setMaterialDate(Date materialDate) {
        this.materialDate = materialDate;
    }

    public String getMaterialPerson() {
        return materialPerson;
    }

    public void setMaterialPerson(String materialPerson) {
        this.materialPerson = materialPerson;
    }

    public Integer getIncomingDocumentStatus() {
        return incomingDocumentStatus;
    }

    public void setIncomingDocumentStatus(Integer incomingDocumentStatus) {
        this.incomingDocumentStatus = incomingDocumentStatus;
    }

    public Item getItem() {
        return item;
    }

    public void setItem(Item item) {
        this.item = item;
    }

    public Supplier getSupplier() {
        return supplier;
    }

    public void setSupplier(Supplier supplier) {
        this.supplier = supplier;
    }

    public Incoming() {
    }

    public Incoming(Long incomingId, Integer incomingQualifiedNumber, Integer incomingFatalFlaw, Integer incomingSevereFlaw, Integer incomingSlightFlaw) {
        this.incomingId = incomingId;
        this.incomingQualifiedNumber = incomingQualifiedNumber;
        this.incomingFatalFlaw = incomingFatalFlaw;
        this.incomingSevereFlaw = incomingSevereFlaw;
        this.incomingSlightFlaw = incomingSlightFlaw;
    }

    public Incoming(Long incomingId, String incomingName, Long incomingSupplierId, Long incomingItemId, Integer incomingReceptionCount, Integer incomingMaterialCount, Integer incomingOutCount, Integer incomingMaterialOutcome, Date incomingDate, Date materialDate, String materialPerson, Integer incomingDocumentStatus, String incomingSupplierName, String incomingItemName, String incomingItemUnit, Item item, Supplier supplier) {
        this.incomingId = incomingId;
        this.incomingName = incomingName;
        this.incomingSupplierId = incomingSupplierId;
        this.incomingItemId = incomingItemId;
        this.incomingReceptionCount = incomingReceptionCount;
        this.incomingMaterialCount = incomingMaterialCount;
        this.incomingOutCount = incomingOutCount;
        this.incomingMaterialOutcome = incomingMaterialOutcome;
        this.incomingDate = incomingDate;
        this.materialDate = materialDate;
        this.materialPerson = materialPerson;
        this.incomingDocumentStatus = incomingDocumentStatus;
        this.incomingSupplierName = incomingSupplierName;
        this.incomingItemName = incomingItemName;
        this.incomingItemUnit = incomingItemUnit;
        this.item = item;
        this.supplier = supplier;
    }

    @Override
    public String toString() {
        return "Incoming{" +
                "incomingId=" + incomingId +
                ", incomingName='" + incomingName + '\'' +
                ", incomingSupplierId=" + incomingSupplierId +
                ", incomingItemId=" + incomingItemId +
                ", incomingReceptionCount=" + incomingReceptionCount +
                ", incomingMaterialCount=" + incomingMaterialCount +
                ", incomingOutCount=" + incomingOutCount +
                ", incomingMaterialOutcome=" + incomingMaterialOutcome +
                ", incomingDate=" + incomingDate +
                ", materialDate=" + materialDate +
                ", materialPerson='" + materialPerson + '\'' +
                ", incomingDocumentStatus=" + incomingDocumentStatus +
                ", incomingSupplierName='" + incomingSupplierName + '\'' +
                ", incomingItemName='" + incomingItemName + '\'' +
                ", incomingItemUnit='" + incomingItemUnit + '\'' +
                ", incomingQualifiedNumber=" + incomingQualifiedNumber +
                ", incomingFatalFlaw=" + incomingFatalFlaw +
                ", incomingSevereFlaw=" + incomingSevereFlaw +
                ", incomingSlightFlaw=" + incomingSlightFlaw +
                ", item=" + item +
                ", supplier=" + supplier +
                '}';
    }
}